import {
	Api_url
} from './config'

export default {
	//post请求
	post(url, param) {
		return new Promise((cback, reject) => {
			uni.request({
				url: Api_url + url,
				data: param,
				method:'post',
				header: {
					token:uni.getStorageSync("token")
				},
			}).then(data => { //data为一个数组，数组第一项为错误信息，第二项为返回数据
				var [error, res] = data; 
				var res_code = res.statusCode.toString(); 
				if (res_code.charAt(0) == 2) { 
					if(res_code==200){
						cback(res.data); 
					}else{
					console.log('201:',res.data.msg)
						uni.showToast({
							title:res.data.msg,
							icon:'none'
						})
					}
				} else {
					if(res_code==401){
						uni.showToast({
							title:'登录失效',
							icon:'none'
						})
						setTimeout(()=>{	
							uni.removeStorageSync('token')
							uni.reLaunch({
								url:'/pages/login/login'
							})
						},1000)
						return;
					}
					console.log('400:',res.data.msg)
					let msg=res.data.msg?res.data.msg:'请求错误'
					uni.showToast({
						title:msg,
						icon:'none'
					})
				}				
			}).catch(err => { 
				console.log('请求异常:',err); 	
				uni.showToast({
					title:'请求异常',
					icon:'none'
				})
			})
		})
	},
	
	get(url, param) {
		return new Promise((cback, reject) => {
			uni.request({
				url: Api_url + url,
				data: param,
				method:'get',
				header: {
					token:uni.getStorageSync("token")
				},
			}).then(data => { //data为一个数组，数组第一项为错误信息，第二项为返回数据
				var [error, res] = data; 
				var res_code = res.statusCode.toString(); 
				if (res_code.charAt(0) == 2) { 
					if(res_code==200){
						cback(res.data); 
					}else{
					console.log('201:',res.data.msg)
						uni.showToast({
							title:res.data.msg,
							icon:'none'
						})
					}
				} else {
					if(res_code==401){
						uni.showToast({
							title:'登录失效',
							icon:'none'
						})
						setTimeout(()=>{	
							uni.removeStorageSync('token')
							uni.reLaunch({
								url:'/pages/login/login'
							})
						},1000)
						return;
					}
					console.log('400:',res.data.msg) 
					let msg=res.data.msg?res.data.msg:'请求错误'
					uni.showToast({
						title:msg,
						icon:'none'
					})
				}				
			}).catch(err => { 
				console.log('请求异常:',err); 	
				uni.showToast({
					title:'请求异常',
					icon:'none'
				})
			})
		})
	},
	// 在export default对象中添加
	statistics() {
	  return new Promise((cback, reject) => {
	    uni.request({
	      url: Api_url + '/statistics/operation',
	      method: 'get',
	      header: {
	        token: uni.getStorageSync("token")
	      },
	    }).then(data => {
	      var [error, res] = data;
	      var res_code = res.statusCode.toString();
	      if (res_code.charAt(0) == 2) {
	        if (res_code == 200) {
	          cback(res.data);
	        } else {
	          console.log('201:', res.data.msg)
	          uni.showToast({
	            title: res.data.msg,
	            icon: 'none'
	          })
	        }
	      } else {
	        // 错误处理逻辑（同现有get/post方法）
	        if (res_code == 401) {
	          uni.showToast({ title: '登录失效', icon: 'none' })
	          setTimeout(() => {
	            uni.removeStorageSync('token')
	            uni.reLaunch({ url: '/pages/login/login' })
	          }, 1000)
	          return;
	        }
	        let msg = res.data.msg || '请求错误'
	        uni.showToast({ title: msg, icon: 'none' })
	      }
	    }).catch(err => {
	      console.log('请求异常:', err);
	      uni.showToast({ title: '请求异常', icon: 'none' })
	    })
	  })
	},
	// 客户列表
	getCustomerList(params) {
	  return new Promise((cback, reject) => {
	    uni.request({
	      url: Api_url + '/customer/list',
	      method: 'get',
	      data: params,
	      header: {
	        token: uni.getStorageSync("token")
	      },
	    }).then(data => {
	      var [error, res] = data;
	      var res_code = res.statusCode.toString();
	      if (res_code.charAt(0) == 2) {
	        if (res_code == 200) {
	          cback(res.data);
	        } else {
	          console.log('201:', res.data.msg)
	          uni.showToast({
	            title: res.data.msg,
	            icon: 'none'
	          })
	        }
	      } else {
	        if (res_code == 401) {
	          uni.showToast({ title: '登录失效', icon: 'none' })
	          setTimeout(() => {
	            uni.removeStorageSync('token')
	            uni.reLaunch({ url: '/pages/login/login' })
	          }, 1000)
	          return;
	        }
	        let msg = res.data.msg || '请求错误'
	        uni.showToast({ title: msg, icon: 'none' })
	      }
	    }).catch(err => {
	      console.log('请求异常:', err);
	      uni.showToast({ title: '请求异常', icon: 'none' })
	    })
	  })
	},
	
	// 客户详情
	getCustomerDetail(customerId) {
	  return new Promise((cback, reject) => {
	    uni.request({
	      url: Api_url + '/customer/detail',
	      method: 'get',
	      data: { customer_id: customerId },
	      header: {
	        token: uni.getStorageSync("token")
	      },
	    }).then(data => {
	      // 错误处理逻辑同上
	      var [error, res] = data;
	      var res_code = res.statusCode.toString();
	      if (res_code.charAt(0) == 2 && res_code == 200) {
	        cback(res.data);
	      } else {
	        // 复用已有错误处理逻辑
	        if (res_code == 401) {
	          uni.showToast({ title: '登录失效', icon: 'none' })
	          setTimeout(() => {
	            uni.removeStorageSync('token')
	            uni.reLaunch({ url: '/pages/login/login' })
	          }, 1000)
	          return;
	        }
	        let msg = res.data.msg || '请求错误'
	        uni.showToast({ title: msg, icon: 'none' })
	      }
	    }).catch(err => {
	      console.log('请求异常:', err);
	      uni.showToast({ title: '请求异常', icon: 'none' })
	    })
	  })
	},
	
	// 获取客户标签
	getCustomerTags() {
	  return new Promise((cback, reject) => {
	    uni.request({
	      url: Api_url + '/customer/tags',
	      method: 'get',
	      header: {
	        token: uni.getStorageSync("token")
	      },
	    }).then(data => {
	      // 错误处理逻辑同上
	      var [error, res] = data;
	      var res_code = res.statusCode.toString();
	      if (res_code.charAt(0) == 2 && res_code == 200) {
	        cback(res.data);
	      } else {
	        if (res_code == 401) {
	          uni.showToast({ title: '登录失效', icon: 'none' })
	          setTimeout(() => {
	            uni.removeStorageSync('token')
	            uni.reLaunch({ url: '/pages/login/login' })
	          }, 1000)
	          return;
	        }
	        let msg = res.data.msg || '请求错误'
	        uni.showToast({ title: msg, icon: 'none' })
	      }
	    }).catch(err => {
	      console.log('请求异常:', err);
	      uni.showToast({ title: '请求异常', icon: 'none' })
	    })
	  })
	},
	
	// 编辑客户标签
	editCustomerTags(params) {
	  return new Promise((cback, reject) => {
	    uni.request({
	      url: Api_url + '/customer/editTags',
	      method: 'post',
	      data: params,
	      header: {
	        token: uni.getStorageSync("token")
	      },
	    }).then(data => {
	      // 错误处理逻辑同上
	      var [error, res] = data;
	      var res_code = res.statusCode.toString();
	      if (res_code.charAt(0) == 2 && res_code == 200) {
	        cback(res.data);
	      } else {
	        if (res_code == 401) {
	          uni.showToast({ title: '登录失效', icon: 'none' })
	          setTimeout(() => {
	            uni.removeStorageSync('token')
	            uni.reLaunch({ url: '/pages/login/login' })
	          }, 1000)
	          return;
	        }
	        let msg = res.data.msg || '请求错误'
	        uni.showToast({ title: msg, icon: 'none' })
	      }
	    }).catch(err => {
	      console.log('请求异常:', err);
	      uni.showToast({ title: '请求异常', icon: 'none' })
	    })
	  })
	},
	 // 商品管理相关接口
	 // 1. 获取商品列表
	 getProductList(params) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/product/list',
	       method: 'get',
	       data: params,
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 2. 新增商品
	 addProduct(params) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/product/add',
	       method: 'post',
	       data: params,
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	         uni.showToast({ title: '新增成功', icon: 'none' })
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 3. 编辑商品
	 // 完善编辑商品接口
	 editProduct(params) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/product/edit',
	       method: 'post',
	       data: params,
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         if (res.data.code === 0) {
	           cback(res.data);
	           uni.showToast({ title: '修改成功', icon: 'none' })
	         } else {
	           uni.showToast({ title: res.data.msg || '修改失败', icon: 'none' })
	         }
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 添加错误处理通用方法
	 handleError(res_code, msg) {
	   if (res_code == 401) {
	     uni.showToast({ title: '登录失效', icon: 'none' })
	     setTimeout(() => {
	       uni.removeStorageSync('token')
	       uni.reLaunch({ url: '/pages/login/login' })
	     }, 1000)
	     return;
	   }
	   let message = msg || '请求错误'
	   uni.showToast({ title: message, icon: 'none' })
	 },
	 
	 // 4. 商品上下架
	 updateProductStatus(id, status) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/product/status',
	       method: 'post',
	       data: { id, status },
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	         uni.showToast({ title: status === 1 ? '上架成功' : '下架成功', icon: 'none' })
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 5. 删除商品
	 deleteProduct(id) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/product/delete',
	       method: 'post',
	       data: { id },
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	         uni.showToast({ title: '删除成功', icon: 'none' })
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 错误处理封装
	 handleError(code, msg) {
	   if (code === '401') {
	     uni.showToast({ title: '登录失效', icon: 'none' })
	     setTimeout(() => {
	       uni.removeStorageSync('token')
	       uni.reLaunch({ url: '/pages/login/login' })
	     }, 1000)
	     return;
	   }
	   let message = msg || '请求错误'
	   uni.showToast({ title: message, icon: 'none' })
	 },
	 // 在export default对象中添加
	 // 提交资质
	 submitCertification(params) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/certification/submit',
	       method: 'post',
	       data: params,
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 选择入驻方式
	 selectPlan(params) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/certification/selectPlan',
	       method: 'post',
	       data: params,
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 查询审核状态
	 checkCertStatus(certId) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/certification/checkStatus',
	       method: 'get',
	       data: { certId },
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	       } else {
	         this.handleError(res_code, res.data.msg);
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 // 在export default对象中添加
	 // 获取门店信息
	 getShopInfo(shopId) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/shop/info',
	       method: 'get',
	       data: shopId ? { shopId } : {},
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	       } else {
	         if (res_code == 401) {
	           uni.showToast({ title: '登录失效', icon: 'none' })
	           setTimeout(() => {
	             uni.removeStorageSync('token')
	             uni.reLaunch({ url: '/pages/login/login' })
	           }, 1000)
	           return;
	         }
	         let msg = res.data.msg || '请求错误'
	         uni.showToast({ title: msg, icon: 'none' })
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 
	 // 保存门店编辑信息
	 saveShopEdit(params) {
	   return new Promise((cback, reject) => {
	     uni.request({
	       url: Api_url + '/shop/edit',
	       method: 'post',
	       data: params,
	       header: {
	         token: uni.getStorageSync("token")
	       },
	     }).then(data => {
	       var [error, res] = data;
	       var res_code = res.statusCode.toString();
	       if (res_code === '200') {
	         cback(res.data);
	         uni.showToast({ title: res.data.msg || '编辑成功', icon: 'none' })
	       } else {
	         if (res_code == 401) {
	           uni.showToast({ title: '登录失效', icon: 'none' })
	           setTimeout(() => {
	             uni.removeStorageSync('token')
	             uni.reLaunch({ url: '/pages/login/login' })
	           }, 1000)
	           return;
	         }
	         let msg = res.data.msg || '请求错误'
	         uni.showToast({ title: msg, icon: 'none' })
	       }
	     }).catch(err => {
	       console.log('请求异常:', err);
	       uni.showToast({ title: '请求异常', icon: 'none' })
	     })
	   })
	 },
	 // 添加店铺优惠券
	   addShopCoupon(params) {
	     return this.request('post', '/shop_cms/add_shop_coupon', params);
	   },
	   
	   // 添加VIP优惠券
	   addVipCoupon(params) {
	     return this.request('post', '/shop_cms/add_vip_coupon', params);
	   },
	   
	   // 获取优惠券列表
	   getCouponList() {
	     return this.request('get', '/shop_cms/get_coupon');
	   },
	   
	   // 删除优惠券
	   deleteCoupon(id) {
	     return this.request('post', '/shop_cms/del_coupon', { id });
	   },
	   
	   // 统一请求方法
	   request(method, url, data) {
	     return new Promise((resolve, reject) => {
	       uni.request({
	         url: Api_url + url,
	         method,
	         data,
	         header: { token: uni.getStorageSync("token") },
	         success: (res) => {
	           if (res.statusCode === 200 && res.data.code === 0) {
	             resolve(res.data);
	           } else {
	             uni.showToast({ title: res.data.msg || '操作失败', icon: 'none' });
	             reject(res.data);
	           }
	         },
	         fail: (err) => {
	           uni.showToast({ title: '网络错误', icon: 'none' });
	           reject(err);
	         }
	       });
	     });
	   }
}
